package tsb.dom;

/**
 * @author Santiago
 *
 * El patrón Composite sirve para construir objetos complejos a partir de otros
 * más simples y similares entre sí, gracias a la composición recursiva y a una
 * estructura en forma de árbol. Esto simplifica el tratamiento de los objetos
 * creados, ya que al poseer todos ellos una interfaz común, se tratan todos de
 * la misma manera.
 *
 * @version 1.0.2
 */
public abstract class Componente  {
    
    protected String nombre;

    public Componente (String nombre) {
        this.nombre = nombre;        
    }

    public void setNombre (String nombre) {
        this.nombre = nombre;
    }

    public String getNombre () {
        return nombre;
    }

    public Boolean compareTo(Componente c){
        return (this.hashCode() == c.hashCode());
    }
    
    abstract public void agregar (Componente c);
    abstract public void borrar (Componente c);
    abstract public Iterador IteradorDeComponentes();
    abstract public Boolean tieneHijos();
}
